function _globalKeyPressHandler(actor, event) {
if (modalCount == 0)
return false;
+ if (event.type() != Clutter.EventType.KEY_RELEASE)
+ return false;
+
+ let symbol = event.get_key_symbol();
+ let keyCode = event.get_key_code();
+ let modifierState = Shell.get_event_state(event);
+ // Check the overview key first, this isn't a Meta.KeyBindingAction yet
+ if (symbol == Clutter.Super_L || symbol == Clutter.Super_R) {
+ // The super key is the default for triggering the overview, and should
+ // get us out of the overview when we are already in it.
+ if (overview.visible)
+ overview.hide();
+
+ return true;
+ }
- let type = event.type();
+ // Whitelist some of the Metacity actions
+ let display = global.screen.get_display();
+ let activeWorkspaceIndex = global.screen.get_active_workspace_index();
- if (type == Clutter.EventType.KEY_PRESS) {
- let symbol = event.get_key_symbol();
- if (symbol == Clutter.Print) {
- // We want to be able to take screenshots of the shell at all times
+ // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
+ let action = display.get_keybinding_action(keyCode, modifierState);
+ switch (action) {
+ case Meta.KeyBindingAction.COMMAND_SCREENSHOT:
let gconf = GConf.Client.get_default();
let command = gconf.get_string('/apps/metacity/keybinding_commands/command_screenshot');
if (command != null && command != '') {
let p = new Shell.Process({'args' : args});
p.run();
}
-
return true;
- }
- } else if (type == Clutter.EventType.KEY_RELEASE) {
- let symbol = event.get_key_symbol();
- let keyCode = event.get_key_code();
- let modifierState = Shell.get_event_state(event);
- // Check the overview key first, this isn't a Meta.KeyBindingAction yet
- if (symbol == Clutter.Super_L || symbol == Clutter.Super_R) {
- // The super key is the default for triggering the overview, and should
- // get us out of the overview when we are already in it.
- if (overview.visible)
- overview.hide();
-
+ case Meta.KeyBindingAction.WORKSPACE_LEFT:
+ wm.actionMoveWorkspaceLeft();
+ return true;
+ case Meta.KeyBindingAction.WORKSPACE_RIGHT:
+ wm.actionMoveWorkspaceRight();
+ return true;
+ case Meta.KeyBindingAction.PANEL_RUN_DIALOG:
+ case Meta.KeyBindingAction.COMMAND_2:
+ getRunDialog().open();
return true;
- }
-
- // Whitelist some of the Metacity actions
- let display = global.screen.get_display();
- let activeWorkspaceIndex = global.screen.get_active_workspace_index();
-
- // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
- let action = display.get_keybinding_action(symbol, keyCode, modifierState);
- switch (action) {
- case Meta.KeyBindingAction.WORKSPACE_LEFT:
- wm.actionMoveWorkspaceLeft();
- return true;
- case Meta.KeyBindingAction.WORKSPACE_RIGHT:
- wm.actionMoveWorkspaceRight();
- return true;
- case Meta.KeyBindingAction.PANEL_RUN_DIALOG:
- case Meta.KeyBindingAction.COMMAND_2:
- getRunDialog().open();
- return true;
- }
}
return false;